目標:
1.不同年度中電影分數最高的導演
2.不同導演的平均評分及統計分佈(使用groupby())
3.不同種類電影的平均評分及統計分佈(使用groupby())
import pandas as pd
movie = pd.DataFrame([
['A類電影', 2020, 54,'導演Apple'],
['B類電影', 2020, 90,'導演Ben'],
['C類電影', 2020, 58,'導演Candis'],
['A類電影', 2021, 53,'導演Linda'],
['B類電影', 2021, 66,'導演Apple'],
['C類電影', 2021, 82,'導演Ben'],
['A類電影', 2022, 85,'導演Kevin'],
['B類電影', 2022, 75,'導演Peter'],
['C類電影', 2022, 56,'導演Judy'],
], columns=['電影名稱', '年份', '分數', '導演'])
print(movie)
執行結果:
電影名稱 年份 分數 導演
0 A類電影 2020 54 導演Apple
1 B類電影 2020 90 導演Ben
2 C類電影 2020 58 導演Candis
3 A類電影 2021 53 導演Linda
4 B類電影 2021 66 導演Apple
5 C類電影 2021 82 導演Ben
6 A類電影 2022 85 導演Kevin
7 B類電影 2022 75 導演Peter
8 C類電影 2022 56 導演Judy
1.不同年度中電影分數最高的導演
for year in movie['年份'].unique():
filtered_movie = movie[movie['年份'] == year]
best_director = filtered_movie.groupby('導演')['分數'].max().sort_values(ascending=False).index[0]
print(f"在{year}年,電影分數最高的導演是:{best_director}")
執行結果:
在2020年,電影分數最高的導演是:導演Ben
在2021年,電影分數最高的導演是:導演Ben
在2022年,電影分數最高的導演是:導演Kevin
2.計算不同導演的平均評分
average_score_by_director = movie.groupby('導演')['分數'].mean()
print(average_score_by_director)
執行結果:
導演
導演Apple 60.0
導演Ben 86.0
導演Candis 58.0
導演Judy 56.0
導演Kevin 85.0
導演Linda 53.0
導演Peter 75.0
Name: 分數, dtype: float64
不同類型導演的評分統計資料分布
average_score_by_director = movie.groupby('導演')['分數'].describe()
print(average_score_by_director)
執行結果:
count mean std min 25% 50% 75% max
導演
導演Apple 2.0 60.0 8.485281 54.0 57.0 60.0 63.0 66.0
導演Ben 2.0 86.0 5.656854 82.0 84.0 86.0 88.0 90.0
導演Candis 1.0 58.0 NaN 58.0 58.0 58.0 58.0 58.0
導演Judy 1.0 56.0 NaN 56.0 56.0 56.0 56.0 56.0
導演Kevin 1.0 85.0 NaN 85.0 85.0 85.0 85.0 85.0
導演Linda 1.0 53.0 NaN 53.0 53.0 53.0 53.0 53.0
導演Peter 1.0 75.0 NaN 75.0 75.0 75.0 75.0 75.0
3.不同電影的平均評分
average_score_by_movie = movie.groupby('電影名稱')['分數'].mean()
print(average_score_by_movie)
執行結果:
電影名稱
A類電影 64.000000
B類電影 77.000000
C類電影 65.333333
Name: 分數, dtype: float64
不同類型電影的評分統計資料分布
score_distribution_by_movie = movie.groupby('電影名稱')['分數'].describe()
print(score_distribution_by_movie)
執行結果:
count mean std min 25% 50% 75% max
電影名稱
A類電影 3.0 64.000000 18.193405 53.0 53.5 54.0 69.5 85.0
B類電影 3.0 77.000000 12.124356 66.0 70.5 75.0 82.5 90.0
C類電影 3.0 65.333333 14.468356 56.0 57.0 58.0 70.0 82.0
結束~